"Bar Code Loader" By Ken Budnick Copyright 1977 ISBN: 0-07-008856-X Description from Back Cover of "Bar Code Loader" ------------------------------------------------ PAPERBYTE - An Exciting New Way To Distribute Software One of the most common problems for users and suppliers of personal computer software is the need for product distribution in a form which is helpful to the user, low in cost, tolerant of errors in production use, and free of the need for expensive highly specialized peripherals. One solution, conceived in detail by Walter Banks of the Computer Communications Network Group at the University of Waterloo, Ontario, Canada, is the use of bar code patterns prepared on a computer controlled phototype-setter. A bar code is a linear array of printed bars of varying width which encodes digital data as alternating patterns of black ink and white paper. By using a ruler as a guide, an inexpensive hand held "wand" scanning unit converts the bar patterns into a time varying logic level signal. This time varying binary value can then be interpreted by a program which understands the format of the bars. The purpose of this pamphlet is to present the decoding algorithm which was designed by Ken Budnick of Micro-Scan Associates at the request of BYTE Publications Inc. The text of this pamphlet was written by Ken, and contains the general algorithm description in flow chart form plus detailed assemblies of program code for 6800, 6502 and 8080 processors. Individuals with computers based on these processors can use the software directly. Individuals with other processors can use the provided functional specifications and detail examples to create equivalent programs. Table of Contents ----------------- Byte Publications and PAPERBYTE Software The Bar Code Loader Design Considerations A General Bar Code Loader Algorithm LDA or LDR Subroutine RBYT Subroutine RBIT Subroutine RBAR Subroutine Adjusting Program Timing Loops The 6800 Bar Code Loader Program The 6502 Bar Code Loader Program The 8080 or Z-80 Bar Code Loader Program Using The Bar Code Loader Algorithm Implementation and Checkout Procedure Text Entry Procedure Absolute Entry Procedure A Note About Bar Codes BYTE Publications and Paperbyte (TM) Software --------------------------------------------- Notes by Carl Helmers, Editor in Chief The bar code format presented here was conceived as a result of a telephone conversation between Walter Banks and myself in August of 1976. This conversation led to Walter's presentation on bar code technology at the Personal Computing '76 show in Atlantic City NJ in August 1976. It was Walter who came up with a practical way to implement printed software, a prospect which had been a relatively low priority "wouldn't it be neat if we had a way . . ." kind of idea in our minds before we met. Our intent is to promote a method for recording machine readable printed software that would be both easy to use and publicly available for software product distribution. We have no intentions of restricting the use of this kind of notation in any way. We believe that its relationship to the personal computer software industry parallels that of written music notation to the music industry: no one company, individual or organization has any specific proprietary claim to the notation itself; rather it is the intellectual property expressed by music notation which is produced and distributed by composers and music publishing companies. (The legal and ethical comparisons between the software publishing and music industries do not stop at this one point.) As a firm, BYTE Publications Inc does formally claim trademark on our "brand name" of Paperbytes (TM). I feel that BYTE magazine's articles and software books that use bar code machine readable text have a distinctive quality of style and technical excellence which sets them apart from the ordinary. This pamphlet serves as but one example of our product, the kind of technical documentation and information which is needed by individuals experimenting with the personal use of computers. Our purpose as a book production company is to make high quality technical documentation of software products available to personal computer experimenters. Mass production allows us to make these products available at relatively low prices when compared with the cost of similar software items in the recent history of the computing industry. Our Paperbytes (TM) assemblers, compilers, interpreters, operating systems and applications programs come complete with source code listings, relevant object code listings, and machine readable bar code format. Paperbytes (TM) provides a means by which software artists can earn royalties from their creations by making them available to a larger number of people, thereby benefiting both the author and the computing public. I see this as a technological turning point in the history of computer software. Carl Helmers BYTE Publications Inc August 15, 1977